// 用Vuex 存储路由权限模块 为了专门维护管理，把所有的路由 routes 数组（响应式，所有地方都能用）
// 动态生成的路由经过 vuex 的管理，都可以变成响应式的，而不是拿到最初配置的路由信息表
import { asyncRoutes, constantRoutes } from '@/router'

const state = {
  routes: constantRoutes
}
const mutations = {
  // 路由表：标记当前用户所拥有的所有路由
  // 把静态路由和动态路由都拼接到routes中
  setRoutes(state, otherRoutes) {
    // 静态路由的基础上，添加上动态路由
    state.routes = [...state.routes, ...otherRoutes]
  }

}
const actions = {
  // 筛选路由权限
  filterRoutes(context, menus) {
    const otherRoutes = asyncRoutes.filter(item => {
      // 过滤的条件是，判断mens 里面的字段是否在asyncRoutes里面
      if (menus.includes(item.children[0].name)) {
        return true
      } else {
        return false
      }
    })
    context.commit('setRoutes', otherRoutes)
    return otherRoutes
  }
}
const getters = {}
export default {
  namespaced: true,
  state,
  mutations,
  actions,
  getters
}
